home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3dm / dmedia / dmAudioRateConvert.z / dmAudioRateConvert
Encoding:
Text File  |  1998-10-20  |  9.4 KB  |  133 lines

  1.  
  2.  
  3.  
  4. ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt((((3333ddddmmmm))))                                ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt((((3333ddddmmmm))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      dmAudioRateConvert - convert data sampling rate.  It consumes an input
  10.      buffer of floats and generates an output buffer of floats.
  11.  
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      ####iiiinnnncccclllluuuuddddeeee <<<<ddddmmmmeeeeddddiiiiaaaa////ddddmmmm____aaaauuuuddddiiiioooouuuuttttiiiillll....hhhh>>>>
  15.  
  16.      DDDDMMMMssssttttaaaattttuuuussss ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt((((DDDDMMMMaaaauuuuddddiiiioooorrrraaaatttteeeeccccoooonnnnvvvveeeerrrrtttteeeerrrr hhhhaaaannnnddddlllleeee,,,,
  17.                              ffffllllooooaaaatttt ****iiiinnnnbbbbuuuuffff,,,, ffffllllooooaaaatttt ****oooouuuuttttbbbbuuuuffff,,,, iiiinnnntttt iiiinnnnlllleeeennnn,,,,
  18.                              iiiinnnntttt ****nnnnuuuummmmoooouuuutttt))))
  19.  
  20.  
  21. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRR
  22.      _h_a_n_d_l_e    DDDDMMMMaaaauuuuddddiiiioooorrrraaaatttteeeeccccoooonnnnvvvveeeerrrrtttteeeerrrr structure, created by
  23.                ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttteeeerrrrCCCCrrrreeeeaaaatttteeee((((3333ddddmmmm)))), specifies the signal
  24.                processing parameters.
  25.  
  26.  
  27.      _i_n_b_u_f     pointer to input data buffer.  The converter does not alter the
  28.                contents of this buffer.  The data format is currently limited
  29.                to single channel, 32-bit floating point.
  30.  
  31.  
  32.      _o_u_t_b_u_f    pointer to output data buffer.  Ensure that _i_n_b_u_f and _o_u_t_b_u_f do
  33.                not overlap.  The data format is currently limited to single
  34.                channel, 32-bit floating point.  Sampling rate conversion
  35.                alters the length of the data. ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt will output
  36.                _i_n_l_e_n * (output rate / input rate) samples.
  37.  
  38.  
  39.      _i_n_l_e_n     length of the input buffer must be a multiple of
  40.                DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____IIIINNNN____LLLLEEEENNNNGGGGTTTTHHHH, dependent on the conversion
  41.                parameters and cab be acquired with ddddmmmmPPPPaaaarrrraaaammmmssssGGGGeeeettttFFFFllllooooaaaatttt((((3333ddddmmmm)))),
  42.                ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttteeeerrrrSSSSeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))), or
  43.                ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttteeeerrrrGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))).
  44.  
  45.  
  46.      _n_u_m_o_u_t    # input sample frames numout this iteration, pass by reference.
  47.                null (0) value ok.
  48.  
  49.  
  50. RRRREEEETTTTUUUURRRRNNNNEEEEDDDD VVVVAAAALLLLUUUUEEEE
  51.      Returns DDDDMMMM____FFFFAAAAIIIILLLLUUUURRRREEEE or DDDDMMMM____SSSSUUUUCCCCCCCCEEEESSSSSSSS.
  52.  
  53.  
  54. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  55.      ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt((((3333ddddmmmm)))) attempts to convert _i_n_l_e_n samples. _i_n_l_e_n must be
  56.      of a multiple M of DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____IIIINNNN____LLLLEEEENNNNGGGGTTTTHHHH.  The application program
  57.      must malloc DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____IIIINNNN____LLLLEEEENNNNGGGGTTTTHHHH * M samples for inbuf and
  58.      DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____OOOOUUUUTTTT____LLLLEEEENNNNGGGGTTTTHHHH * M samples for outbuf for any M >= 1
  59.      (chosen by the application).  DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____IIIINNNN____LLLLEEEENNNNGGGGTTTTHHHH * M samples
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt((((3333ddddmmmm))))                                ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt((((3333ddddmmmm))))
  71.  
  72.  
  73.  
  74.      are numout into DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____OOOOUUUUTTTT____LLLLEEEENNNNGGGGTTTTHHHH * M samples.  The actual
  75.      value of samples returned in outbuf by a given call to ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt
  76.      may be slightly less than DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____OOOOUUUUTTTT____LLLLEEEENNNNGGGGTTTTHHHH * M, and is
  77.      returned in numout.  ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt will return DM_FAILURE if it is
  78.      called with a value of "inlen" which is not a multiple M of
  79.      DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____IIIINNNN____LLLLEEEENNNNGGGGTTTTHHHH.  It will return DM_SUCCESS in all other
  80.      cases.
  81.  
  82.  
  83.      The application will want to discard the first DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____GGGGRRRROOOOUUUUPPPP____DDDDEEEELLLLAAAAYYYY
  84.      samples returned in outbuf from ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt.  See further
  85.      discussion in ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttteeeerrrrGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))).
  86.  
  87.  
  88.      The application may want to flush out an additional
  89.      DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____GGGGRRRROOOOUUUUPPPP____DDDDEEEELLLLAAAAYYYY samples from ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt after feeding in
  90.      all the input data to be converted.  This flushing operation is performed
  91.      by calling ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttt with a value inlen = h *
  92.      DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____AAAATTTTOOOOMMMMIIIICCCC____IIIINNNN____LLLLEEEENNNNGGGGTTTTHHHH where inlen >= DDDDMMMM____AAAAUUUUDDDDIIIIOOOO____RRRRCCCC____GGGGRRRROOOOUUUUPPPP____DDDDEEEELLLLAAAAYYYY (the
  93.      corresponding inbuf will typically be bzero'd, although the values in
  94.      inbuf probably don't matter).
  95.  
  96.  
  97.      To clear the internal buffers used converter, call
  98.      ddddmmmmAAAAuuuuddddiiiiooooRRRRaaaatttteeeeCCCCoooonnnnvvvveeeerrrrtttteeeerrrrRRRReeeesssseeeetttt((((3333ddddmmmm)))).
  99.  
  100.  
  101. NNNNOOOOTTTTEEEE
  102. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  103.      dmParamsGetFloat(3dm), dmAudioRateConverterSetParams(3dm),
  104.      dmAudioRateConverterGetParams(3dm), dmAudioRateConverterReset(3dm).
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.